#ifndef M3DBASE_H
#define M3DBASE_H

#ifndef MDBG_ALL
#define MDBG_ALL 3
#endif
#ifndef MDBG_VERBOSE
#define MDBG_VERBOSE 2
#endif
#ifndef MDBG_INFO
#define MDBG_INFO 1
#endif
#ifndef MDBG_NONE
#define MDBG_OFF 0
#endif
#ifdef _MSC_VER // Visual Studio
#define __PRETTY_FUNCTION__ __FUNCTION__
#endif

#ifndef T
#define T(A) (char *) A
#endif

#include <iostream>
#include <string>

class M3DBase
{
public:
	M3DBase(int iDebug);
	M3DBase();
	virtual ~M3DBase();
	int getDebugLevel();
	void setDebugLevel(int iDebug);
	virtual void printMethodInfo(std::string method)=0;
protected:
	int m_iDebug;
private:

};

#endif // M3DBASE_H
